home *** CD-ROM | disk | FTP | other *** search
/ Archive Magazine CD 1995 / Archive Magazine CD 1995.iso / discs / pipeline / pipedream / Documents / Custom / CF_sheets / c_ExpNum < prev    next >
Encoding:
Text File  |  1991-10-09  |  4.1 KB  |  135 lines

  1. %OP%PL56
  2. %OP%FX
  3. %OP%FY
  4. %OP%FS
  5. %OP%NDnstr,"511"
  6. %OP%NDft,12
  7. %OP%NDzero_to_nine,b1b20
  8. %OP%NDcurr_fig,6
  9. %OP%NDzero_to_ninety,c1c10
  10. %OP%NDnumber_str,"five hundred and eleven"
  11. %OP%NDspacer," "
  12. %OP%NDhdrds,"five hundred"
  13. %OP%NDneg,0
  14. %OP%NDfst,"90"
  15. %OP%NDztn,b1b20
  16. %OP%NDztnty,c1c10
  17. %OP%NDdate_str,c10
  18. %OP%NDsep," "
  19. %OP%NDsnd,"99"
  20. %OP%NDdate_str2,"ninety nine"
  21. %OP%NDadbc,"a.d."
  22. %OP%NDsuff,""
  23. %OP%WC2,1354,788,1364,0,0,0,0
  24. %OP%VS3.81 Test (Oct  8 1991), Colton Software - Development, R0123 4567 8901 2345
  25. %CO:A,102,0%%V%%L%function("expand_number","arg:number","arg_2:text")
  26. %V%%L%set_name("nstr",string(@arg,0))
  27. %V%%L%set_name("neg",0)
  28. %V%%L%if(left(nstr,1)="-")
  29. %V%%L%set_name("neg",1)
  30. %V%%L%set_name("nstr",mid(nstr,2,length(nstr)-1))
  31. %V%%L%endif
  32. %V%%L%if(length(nstr)=4,result(expand_date(@arg,@arg_2)),)
  33. %V%%L%if(length(nstr)>3,result("Number too big"),)
  34. %V%%L%if(@arg=0,result("Zero"),)
  35. %V%%L%set_name("spacer",@arg_2)
  36. %V%%L%set_name("zero_to_nine",b1b20)
  37. %V%%L%set_name("zero_to_ninety",c1c10)
  38. %V%%L%set_name("number_str","")
  39. %V%%L%set_name("ft",value(right(nstr,2))+1)
  40. %V%%L%if(ft<=20 & ft>1,set_name("number_str",(index(zero_to_nine,1,ft))),)
  41. %V%%L%if(ft>20)
  42. %V%%L%set_name("curr_fig",value(mid(nstr,length(nstr)-1,1))+1)
  43. %V%%L%if(curr_fig>1,set_name("number_str",index(zero_to_ninety,1,curr_fig)),)
  44. %V%%L%set_name("curr_fig",value(mid(nstr,length(nstr),1))+1)
  45. %V%%L%if(curr_fig>1,set_name("number_str",join(number_str,spacer,index(zero_to_nine,1,curr_fig))),)
  46. %V%%L%endif
  47. %V%%L%set_name("curr_fig",value(mid(nstr,1,1))+1)
  48. %V%%L%if(length(nstr)=3,set_name("hdrds",join(index(zero_to_nine,1,curr_fig),spacer,"hundred")),set_name("hdrds",""))
  49. %V%%L%if(hdrds<>"")
  50. %V%%L%if(number_str<>"",set_name("number_str",join(hdrds,spacer,"and",spacer,number_str)),set_name("number_str",hdrds))
  51. %V%%L%endif
  52. %V%%L%if(neg=1,set_name("number_str",join("minus",spacer,number_str)),)
  53.  
  54. %V%%L%result(number_str)
  55.  
  56.  
  57. %V%%L%function("expand_date","arg:number","arg_2:text")
  58. %V%%L%set_name("nstr",string(@arg,0))
  59. %V%%L%set_name("adbc","a.d.")
  60. %V%%L%if(left(nstr,1)="-")
  61. %V%%L%set_name("adbc","b.c.")
  62. %V%%L%set_name("nstr",mid(nstr,2,length(nstr)-1))
  63. %V%%L%endif
  64. %V%%L%if(length(nstr)=1,set_name("nstr",join("000",nstr)),)
  65. %V%%L%if(length(nstr)=2,set_name("nstr",join("00",nstr)),)
  66. %V%%L%if(length(nstr)=3,set_name("nstr",join("0",nstr)),)
  67. %V%%L%if(length(nstr)<>4,result("Bad Year"),)
  68. %V%%L%set_name("fst",left(nstr,2))
  69. %V%%L%set_name("snd",right(nstr,2))
  70. %V%%L%set_name("sep",@arg_2)
  71. %V%%L%set_name("ztn",b1b20)
  72. %V%%L%set_name("ztnty",c1c10)
  73. %V%%L%set_name("date_str","")
  74. %V%%L%set_name("date_str2","")
  75. %V%%L%set_name("suff","")
  76. %V%%L%set_name("ft",value(fst)+1)
  77. %V%%L%if(ft<=20 & ft>1,set_name("date_str",(index(ztn,1,ft))),)
  78. %V%%L%if(ft>20)
  79. %V%%L%set_name("curr_fig",value(left(fst,1))+1)
  80. %V%%L%if(curr_fig>1,set_name("date_str",index(ztnty,1,curr_fig)),)
  81. %V%%L%set_name("curr_fig",value(right(fst,1))+1)
  82. %V%%L%if(curr_fig>1,set_name("date_str",join(date_str,sep,index(ztn,1,curr_fig))),)
  83. %V%%L%endif
  84.  
  85. %V%%L%set_name("ft",value(snd)+1)
  86. %V%%L%if(ft<=20 & ft>1,set_name("date_str2",(index(ztn,1,ft))),)
  87. %V%%L%if(ft<11 & ft>1,set_name("date_str2",join("oh",sep,date_str2)),)
  88. %V%%L%if(ft>20)
  89. %V%%L%set_name("curr_fig",value(left(snd,1))+1)
  90. %V%%L%if(curr_fig>1,set_name("date_str2",index(ztnty,1,curr_fig)),)
  91. %V%%L%set_name("curr_fig",value(right(snd,1))+1)
  92. %V%%L%if(curr_fig>1,set_name("date_str2",join(date_str2,sep,index(ztn,1,curr_fig))),)
  93. %V%%L%endif
  94.  
  95. %V%%L%if(left(snd,1)="0")
  96. %V%%L%if(right(snd,1)="0")
  97. %V%%L%if(value(right(fst,1))=0,set_name("date_str2","thousand"),set_name("date_str2","hundred"))
  98. %V%%L%if(value(right(fst,1))=0,set_name("date_str",index(ztn,1,value(left(fst,1))+1)),)
  99. %V%%L%else
  100. %V%%L%if(value(right(fst,1))=0,set_name("date_str2",join("thousand",sep,"and",sep,index(ztn,1,value(right(snd,1))+1))),)
  101. %V%%L%if(value(right(fst,1))=0,set_name("date_str",index(ztn,1,value(left(fst,1))+1)),)
  102. %V%%L%endif
  103. %V%%L%endif
  104. %V%%L%result(join(date_str,sep,date_str2,sep,adbc))
  105. %CO:B,6,60%zero
  106. one
  107. two
  108. three
  109. four
  110. five
  111. six
  112. seven
  113. eight
  114. nine
  115. %L%ten
  116. %L%eleven
  117. %L%twelve
  118. %L%thirteen
  119. %L%fourteen
  120. %L%fifteen
  121. %L%sixteen
  122. %L%seventeen
  123. %L%eighteen
  124. %L%nineteen
  125. %CO:C,7,48%zero
  126. ten
  127. twenty
  128. %L%thirty
  129. %L%fourty
  130. %L%fifty
  131. %L%sixty
  132. seventy
  133. %L%eighty
  134. %L%ninety
  135.